/*
 * Copyright (c) 2025 Industrial Software Feature Database
 */
package com.comac.ins.isfd.service;

import com.comac.ins.common.mybatis.core.page.PageQuery;
import com.comac.ins.common.mybatis.core.page.TableDataInfo;
import com.comac.ins.isfd.domain.bo.IsfdMetadataManagementBo;
import com.comac.ins.isfd.domain.vo.IsfdMetadataManagementTableInfoVo;
import com.comac.ins.isfd.domain.vo.IsfdMetadataManagementVo;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;
import java.util.Map;

/**
 * 元数据管理-数据管理Service接口
 *
 * @author Lion Li
 * @date 2024-09-23
 */
public interface IIsfdMetadataManagementService {

    /**
     * 查询元数据管理-数据管理
     *
     * @param id 主键
     * @return 元数据管理-数据管理
     */
    IsfdMetadataManagementVo queryById(String id);

    /**
     * 分页查询元数据管理-数据管理列表
     *
     * @param bo        查询条件
     * @param pageQuery 分页参数
     * @return 元数据管理-数据管理分页列表
     */
    TableDataInfo<IsfdMetadataManagementVo> queryPageList(IsfdMetadataManagementBo bo, PageQuery pageQuery);

    /**
     * 查询符合条件的元数据管理-数据管理列表
     *
     * @param bo 查询条件
     * @return 元数据管理-数据管理列表
     */
    List<IsfdMetadataManagementVo> queryList(IsfdMetadataManagementBo bo);


    /**
     * 元数据管理-数据预览
     *
     * @param bo
     * @return 数据预览
     */
    String getDataPreview(IsfdMetadataManagementBo bo);

    /**
     * 元数据管理-数据映射关系
     *
     * @param bo
     * @return 数据映射
     */
    String getDataMapping(IsfdMetadataManagementBo bo);

    /**
     * 元数据管理-数据映射关系
     *
     * @return 数据映射
     */
    Map<String, Object> assessExcelQuality(MultipartFile multipartFile, String timeCheckString, String outlierCheckString);


    /**
     * 获取要素库表结构
     */
    List<IsfdMetadataManagementTableInfoVo> tableInfo(Long businessId, Long databaseId, String tableName);

    /**
     * 确认导入
     */
    Long save(MultipartFile file, IsfdMetadataManagementBo bo);
}
